<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Glassmorphism Circle Progress</title>
    <style>
      @import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&family=Roboto:wght@300;400;500;700;900&display=swap");
      * {
        margin: 0;
        padding: 0;
        font-family: "Roboto", sans-serif;
      }

      section {
        position: relative;
        display: flex;
        justify-content: center;
        align-items: center;
        padding: 40px 0;
        min-height: 100vh;
        background: #001524;
      }

      section::before {
        content: "";
        position: absolute;
        top: 45%;
        left: 0;
        width: 100%;
        height: 50px;
        background: #186f65;
      }
      .container {
        width: 900px;
        display: flex;
        flex-wrap: wrap;
        justify-content: space-around;
      }
      .container .card {
        position: relative;
        width: 250px;
        height: 300px;
        text-align: center;
        z-index: 10;
        margin: 20px 20px 60px;
        transition: 0.5s;
      }
      .container .card .box {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        background: rgba(255, 255, 255, 0.05);
        box-shadow: 0 15px 35px rgba(0, 0, 0, 0.5);
        backdrop-filter: blur(15px);
        border: 1px solid rgba(255, 255, 255, 0.1);
        z-index: 10;
        border-radius: 10px;
      }

      .percent {
        position: relative;
        width: 150px;
        height: 150px;
        border-radius: 50%;
        z-index: 100;
      }
      .percent .number {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
      }

      .percent .number h2 {
        color: #ccc8aa;
        font-weight: 700;
        font-size: 50px;
      }

      .percent .number h2:hover {
        color: #fff;
      }

      .percent .number h2 span {
        font-size: 24px;
      }

      .text {
        position: absolute;
        bottom: -42px;
        left: 50%;
        transform: translateX(-50%);
        text-align: center;
        padding: 30px 20px 10px;
        background: #f00;
        border-radius: 10px;
        font-weight: 800;
        font-size: 18px;
        letter-spacing: 1px;
        text-transform: uppercase;
        box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2);
        z-index: 1;
        pointer-events: none;
        transition: bottom 0.5s, z-index 0s, transform 0.5s, padding 0.5s;
        transition-delay: 0.5s, 0.5s, 0s, 0.5s;
        color: #fff;
      }

      .card:hover .text {
        transition-delay: 0s, 0.5s, 0.5s, 0s;
        bottom: -70px;
        z-index: 11;
        transform: translateX(-50%) translateY(-50px);
        padding: 10px 20px 10px;
      }

      .card:nth-child(1) .text {
        background: linear-gradient(#e44c25, #f16529);
      }

      .card:nth-child(2) .text {
        background: linear-gradient(#254ce4, #2a65f1);
      }

      .card:nth-child(3) .text {
        background: linear-gradient(#e9c80f, #f7eb1e);
      }

      svg {
        position: relative;
        width: 150px;
        height: 150px;
      }

      svg circle {
        width: 100%;
        height: 100%;
        fill: none;
        stroke-width: 10;
        stroke: rgba(255, 255, 255, 0.05);
        transform: translate(5px, 5px);
        stroke-linecap: round;
      }

      svg circle:nth-child(2) {
        stroke: #fff;
        stroke-dasharray: 440px;
        stroke-dashoffset: 770px;
      }

      .card:nth-child(1) svg circle:nth-child(2) {
        stroke-dashoffset: calc(440px - (440px * 90) / 100);
      }

      .card:nth-child(2) svg circle:nth-child(2) {
        stroke-dashoffset: calc(440px - (440px * 82) / 100);
      }

      .card:nth-child(3) svg circle:nth-child(3) {
        stroke-dashoffset: calc(440px - (440px * 77) / 100);
      }
    </style>
  </head>
  <body>
    <section>
      <div class="container">
        <div class="card">
          <div class="box">
            <div>
              <div class="percent">
                <svg>
                  <circle cx="70" cy="70" r="70"></circle>
                  <circle cx="70" cy="70" r="70"></circle>
                </svg>
                <div class="number">
                  <h2>95<span>%</span></h2>
                </div>
              </div>
            </div>
          </div>
          <div class="text">Html</div>
        </div>
        <div class="card">
          <div class="box">
            <div>
              <div class="percent">
                <svg>
                  <circle cx="70" cy="70" r="70"></circle>
                  <circle cx="70" cy="70" r="70"></circle>
                </svg>
                <div class="number">
                  <h2>82<span>%</span></h2>
                </div>
              </div>
            </div>
          </div>
          <div class="text">CSS</div>
        </div>
        <div class="card">
          <div class="box">
            <div>
              <div class="percent">
                <svg>
                  <circle cx="70" cy="70" r="70"></circle>
                  <circle cx="70" cy="70" r="70"></circle>
                </svg>
                <div class="number">
                  <h2>77<span>%</span></h2>
                </div>
              </div>
            </div>
          </div>
          <div class="text">JavaScript</div>
        </div>
      </div>
    </section>
  </body>
</html>
